home *** CD-ROM | disk | FTP | other *** search
/ PC World 2007 June / PCWorld_2007-06_cd.bin / v cisle / tclock / tclocklight-040702-3.exe / source / property / pagemouse2.c < prev    next >
C/C++ Source or Header  |  2004-02-03  |  5KB  |  195 lines

  1. /*-------------------------------------------------------------
  2.   pagemouse2.c : "Mouse" - "Drop" page of properties
  3.   (C) Kazuto Sato 1997-2003
  4.   For the license, please read readme.txt.
  5.   
  6.   Written by Kazubon, Nanashi-san
  7. ---------------------------------------------------------------*/
  8.  
  9. #include "tcprop.h"
  10.  
  11. /* Globals */
  12.  
  13. BOOL CALLBACK PageMouse2Proc(HWND hDlg, UINT message,
  14.     WPARAM wParam, LPARAM lParam);
  15.  
  16. /* Statics */
  17.  
  18. static void SendPSChanged(HWND hDlg);
  19. static void OnInit(HWND hDlg);
  20. static void OnApply(HWND hDlg);
  21. static void OnDropFilesChange(HWND hDlg);
  22. static void OnBrowse(HWND hDlg);
  23.  
  24. static BOOL  m_bInit = FALSE;
  25. static BOOL  m_bChanged = FALSE;
  26.  
  27. /*------------------------------------------------
  28.   Dialog procedure
  29. --------------------------------------------------*/
  30. BOOL CALLBACK PageMouse2Proc(HWND hDlg, UINT message,
  31.     WPARAM wParam, LPARAM lParam)
  32. {
  33.     switch(message)
  34.     {
  35.         case WM_INITDIALOG:
  36.             OnInit(hDlg);
  37.             return TRUE;
  38.         case WM_COMMAND:
  39.         {
  40.             WORD id, code;
  41.             id = LOWORD(wParam); code = HIWORD(wParam);
  42.             switch(id)
  43.             {
  44.                 case IDC_DROPFILES:
  45.                     if(code == CBN_SELCHANGE)
  46.                     {
  47.                         OnDropFilesChange(hDlg);
  48.                         g_bApplyClock = TRUE;
  49.                         SendPSChanged(hDlg);
  50.                     }
  51.                     break;
  52.                 case IDC_DROPFILESAPP:
  53.                     if(code == EN_CHANGE)
  54.                         SendPSChanged(hDlg);
  55.                     break;
  56.                 case IDC_DROPFILESAPPSANSHO:
  57.                     OnBrowse(hDlg);
  58.                     break;
  59.             }
  60.             return TRUE;
  61.         }
  62.         case WM_NOTIFY:
  63.             switch(((NMHDR *)lParam)->code)
  64.             {
  65.                 case PSN_APPLY: OnApply(hDlg); break;
  66.                 case PSN_HELP: MyHelp(GetParent(hDlg), "Mouse2"); break;
  67.             }
  68.             return TRUE;
  69.     }
  70.     return FALSE;
  71. }
  72.  
  73. /*------------------------------------------------
  74.   notify parent window to enable "Apply" button
  75. --------------------------------------------------*/
  76. void SendPSChanged(HWND hDlg)
  77. {
  78.     if(m_bInit)
  79.     {
  80.         m_bChanged = TRUE;
  81.         SendMessage(GetParent(hDlg), PSM_CHANGED, (WPARAM)(hDlg), 0);
  82.     }
  83. }
  84.  
  85. /*------------------------------------------------
  86.   initialize
  87. --------------------------------------------------*/
  88. void OnInit(HWND hDlg)
  89. {
  90.     char s[MAX_PATH];
  91.     char *section = "Mouse";
  92.     
  93.     m_bInit = FALSE;
  94.     
  95.     // common/tclang.c
  96.     SetDialogLanguage(hDlg, "Mouse2", g_hfontDialog);
  97.     
  98.     CBAddString(hDlg, IDC_DROPFILES,
  99.         (LPARAM)MyString(IDS_NONE, "None"));
  100.     CBAddString(hDlg, IDC_DROPFILES,
  101.         (LPARAM)MyString(IDS_RECYCLE, "Recycle"));
  102.     CBAddString(hDlg, IDC_DROPFILES,
  103.         (LPARAM)MyString(IDS_OPENBY, "OpenBy"));
  104.     CBAddString(hDlg, IDC_DROPFILES,
  105.         (LPARAM)MyString(IDS_COPYTO, "CopyTo"));
  106.     CBAddString(hDlg, IDC_DROPFILES,
  107.         (LPARAM)MyString(IDS_MOVETO, "MoveTo"));
  108.     
  109.     CBSetCurSel(hDlg, IDC_DROPFILES, 
  110.         GetMyRegLong(section, "DropFiles", 0));
  111.     GetMyRegStr(section, "DropFilesApp", s, MAX_PATH, "");
  112.     SetDlgItemText(hDlg, IDC_DROPFILESAPP, s);    
  113.     
  114.     OnDropFilesChange(hDlg);
  115.     
  116.     m_bInit = TRUE;
  117. }
  118.  
  119. /*------------------------------------------------
  120.    apply - save settings
  121. --------------------------------------------------*/
  122. void OnApply(HWND hDlg)
  123. {
  124.     char s[MAX_PATH];
  125.     int n;
  126.     char *section = "Mouse";
  127.     
  128.     if(!m_bChanged) return;
  129.     m_bChanged = FALSE;
  130.     
  131.     n = CBGetCurSel(hDlg, IDC_DROPFILES);
  132.     SetMyRegLong(NULL, "DropFiles", n > 0);
  133.     SetMyRegLong(section, "DropFiles", n);
  134.     GetDlgItemText(hDlg, IDC_DROPFILESAPP, s, MAX_PATH);
  135.     SetMyRegStr(section, "DropFilesApp", s);
  136. }
  137.  
  138. /*------------------------------------------------
  139.   "Function" is selected
  140. --------------------------------------------------*/
  141. void OnDropFilesChange(HWND hDlg)
  142. {
  143.     int i, n;
  144.     
  145.     n = CBGetCurSel(hDlg, IDC_DROPFILES);
  146.     
  147.     if(m_bInit)
  148.         SetDlgItemText(hDlg, IDC_DROPFILESAPP, "");
  149.     
  150.     if(n == 2)
  151.         SetDlgItemText(hDlg, IDC_LABDROPFILESAPP,
  152.             MyString(IDS_APPLICATION, "Application"));
  153.     else if(n == 3 || n == 4)
  154.         SetDlgItemText(hDlg, IDC_LABDROPFILESAPP,
  155.             MyString(IDS_FOLDER, "Folder"));
  156.     
  157.     for(i = IDC_LABDROPFILESAPP; i <= IDC_DROPFILESAPPSANSHO; i++)
  158.         ShowDlgItem(hDlg, i, (2 <= n && n <= 4));
  159. }
  160.  
  161. /*------------------------------------------------
  162.   select file / folder
  163. --------------------------------------------------*/
  164. void OnBrowse(HWND hDlg)
  165. {
  166.     int n;
  167.     char deffile[MAX_PATH], fname[MAX_PATH];
  168.     
  169.     n = CBGetCurSel(hDlg, IDC_DROPFILES);
  170.     
  171.     if(n == 2)
  172.     {
  173.         GetDlgItemText(hDlg, IDC_DROPFILESAPP, deffile, MAX_PATH);
  174.         
  175.         // common/selectfile.c
  176.         if(!SelectMyFile(g_hInst, hDlg,
  177.             "Application (*.exe)\0*.exe\0All (*.*)\0*.*\0",
  178.             0, deffile, fname))
  179.                 return;
  180.     }
  181.     else if(n == 3 || n == 4)
  182.     {
  183.         GetDlgItemText(hDlg, IDC_DROPFILESAPP, deffile, MAX_PATH);
  184.         
  185.         // common/selectfile.c
  186.         if(!SelectFolder(hDlg, deffile, fname)) return;
  187.     }
  188.     else return;
  189.     
  190.     SetDlgItemText(hDlg, IDC_DROPFILESAPP, fname);
  191.     PostMessage(hDlg, WM_NEXTDLGCTL, 1, FALSE);
  192.     SendPSChanged(hDlg);
  193. }
  194.  
  195.